package cn.iocoder.yudao.module.trade.service.price.bo;

import cn.iocoder.yudao.module.product.api.property.dto.ProductPropertyValueDetailRespDTO;
import lombok.Data;

import java.util.List;

/**
 * @author wzy
 */
@Data
public class TradeOrderRespBO {


    /**
     * SPU 编号
     */
    private Long spuId;
    /**
     * SKU 编号
     */
    private Long skuId;

    private Long merchantId;
    /**
     * 购买数量
     */
    private Integer count;
    /**
     * 购物车项的编号
     */

    /**
     * 商品原价（单），单位：分
     * <p>
     * 对应 ProductSkuDO 的 price 字段
     * 对应 taobao 的 order.price 字段
     */
    private Integer price;
    /**
     * 运费金额（总），单位：分
     */
    private Integer deliveryPrice;

    /**
     * 应付金额（总），单位：分
     * <p>
     * = {@link #price} * {@link #count}
     * + {@link #deliveryPrice}
     */
    private Integer payPrice;

    // ========== 商品 SPU 信息 ==========
    /**
     * 商品名
     */
    private String spuName;
    /**
     * 商品图片
     * <p>
     * 优先级：SKU.picUrl > SPU.picUrl
     */
    private String picUrl;
    /**
     * 分类编号
     */
    private Long categoryId;

    // ========== 物流相关字段 =========

    /**
     * 配送方式数组
     * <p>
     * 对应 DeliveryTypeEnum 枚举
     */
    private Integer deliveryTypes;

    /**
     * 物流配置模板编号
     * <p>
     * 对应 TradeDeliveryExpressTemplateDO 的 id 编号
     */
    private Long deliveryTemplateId;

    // ========== 商品 SKU 信息 ==========
    /**
     * 商品重量，单位：kg 千克
     */
    private Double weight;
    /**
     * 商品体积，单位：m^3 平米
     */
    private Double volume;

    /**
     * 商品属性数组
     */
    private List<ProductPropertyValueDetailRespDTO> properties;


}